from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from config.settings import Settings # 导入全局 settings 实例
from .models import Base, Novelsinfomodel # 从 models.py 导入 Base

# 使用配置文件中的 URL 创建引擎
engine = create_engine(Settings().DATABASE_URL, pool_pre_ping=True)

# 创建会话工厂
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

def init_db():
    """
    初始化数据库, 创建所有定义的表。
    在应用启动时调用一次即可。
    """
    print("正在初始化数据库, 创建所有表...")
    Base.metadata.create_all(bind=engine)
    print("数据库初始化完成。")